from multiprocessing import Process, Queue
import time
#用process手动创建进程，写进队列，从队列读，没有用到进程池
def writer(q:Queue):
    for i in ['a','b','c']:
        print('把{}放进队列'.format(i))
        q.put(i)
        time.sleep(0.5)

def reader(q:Queue):
    while True:
        if not q.empty():
            i=q.get(True)
            print('把{}拿出队列'.format(i))
            time.sleep(2)
        else:
            break


if __name__ == '__main__':
    q=Queue(1)  # 最大可接收的消息数量
    #process是手动创建进程，进程多的时候，要用进程池 自动创建
    pw=Process(target=writer,args=(q,))  # 一个元素必须加逗号，才是元组
    pr=Process(target=reader,args=(q,))
    pw.start()
    time.sleep(2)
    pr.start()
    pw.join()
    pr.join()